/**
 */
package br.edu.ufcg.dsc.compiladores.pascal.impl;

import br.edu.ufcg.dsc.compiladores.pascal.ConstFromDigitSequence;
import br.edu.ufcg.dsc.compiladores.pascal.ConstFromId;
import br.edu.ufcg.dsc.compiladores.pascal.ConstFromReal;
import br.edu.ufcg.dsc.compiladores.pascal.ConstFromString;
import br.edu.ufcg.dsc.compiladores.pascal.FieldListClass;
import br.edu.ufcg.dsc.compiladores.pascal.FunctionDeclarationWithHeading;
import br.edu.ufcg.dsc.compiladores.pascal.Model;
import br.edu.ufcg.dsc.compiladores.pascal.PascalFactory;
import br.edu.ufcg.dsc.compiladores.pascal.PascalPackage;
import br.edu.ufcg.dsc.compiladores.pascal.ProceduresAndFunctionDeclaration;
import br.edu.ufcg.dsc.compiladores.pascal.VariableLClass;
import br.edu.ufcg.dsc.compiladores.pascal.actual_parameter;
import br.edu.ufcg.dsc.compiladores.pascal.actual_parameter_list;
import br.edu.ufcg.dsc.compiladores.pascal.actual_value;
import br.edu.ufcg.dsc.compiladores.pascal.array_type;
import br.edu.ufcg.dsc.compiladores.pascal.assignment_statement;
import br.edu.ufcg.dsc.compiladores.pascal.base_type;
import br.edu.ufcg.dsc.compiladores.pascal.block;
import br.edu.ufcg.dsc.compiladores.pascal.bound_especification;
import br.edu.ufcg.dsc.compiladores.pascal.case_label_list;
import br.edu.ufcg.dsc.compiladores.pascal.case_limb;
import br.edu.ufcg.dsc.compiladores.pascal.case_statement;
import br.edu.ufcg.dsc.compiladores.pascal.compound_statement;
import br.edu.ufcg.dsc.compiladores.pascal.conditional_statement;
import br.edu.ufcg.dsc.compiladores.pascal.conformant_array_schema;
import br.edu.ufcg.dsc.compiladores.pascal.constant;
import br.edu.ufcg.dsc.compiladores.pascal.constant_definition;
import br.edu.ufcg.dsc.compiladores.pascal.constant_definition_part;
import br.edu.ufcg.dsc.compiladores.pascal.declaration_part;
import br.edu.ufcg.dsc.compiladores.pascal.element_list;
import br.edu.ufcg.dsc.compiladores.pascal.element_type;
import br.edu.ufcg.dsc.compiladores.pascal.enumerated_type;
import br.edu.ufcg.dsc.compiladores.pascal.expression;
import br.edu.ufcg.dsc.compiladores.pascal.expression_list;
import br.edu.ufcg.dsc.compiladores.pascal.factor;
import br.edu.ufcg.dsc.compiladores.pascal.field_list;
import br.edu.ufcg.dsc.compiladores.pascal.file_component_type;
import br.edu.ufcg.dsc.compiladores.pascal.file_type;
import br.edu.ufcg.dsc.compiladores.pascal.final_expression;
import br.edu.ufcg.dsc.compiladores.pascal.fixed_part;
import br.edu.ufcg.dsc.compiladores.pascal.for_statement;
import br.edu.ufcg.dsc.compiladores.pascal.formal_parameter_list;
import br.edu.ufcg.dsc.compiladores.pascal.formal_parameter_section;
import br.edu.ufcg.dsc.compiladores.pascal.function_body;
import br.edu.ufcg.dsc.compiladores.pascal.function_declaration;
import br.edu.ufcg.dsc.compiladores.pascal.function_designator;
import br.edu.ufcg.dsc.compiladores.pascal.function_heading;
import br.edu.ufcg.dsc.compiladores.pascal.function_identification;
import br.edu.ufcg.dsc.compiladores.pascal.function_identifier;
import br.edu.ufcg.dsc.compiladores.pascal.function_parameter_section;
import br.edu.ufcg.dsc.compiladores.pascal.goto_statement;
import br.edu.ufcg.dsc.compiladores.pascal.identifier_list;
import br.edu.ufcg.dsc.compiladores.pascal.if_statement;
import br.edu.ufcg.dsc.compiladores.pascal.index_type;
import br.edu.ufcg.dsc.compiladores.pascal.initial_expression;
import br.edu.ufcg.dsc.compiladores.pascal.label_declaration_part;
import br.edu.ufcg.dsc.compiladores.pascal.lower_bound;
import br.edu.ufcg.dsc.compiladores.pascal.ordinal_type_identifier;
import br.edu.ufcg.dsc.compiladores.pascal.packed_conformant_array_schema;
import br.edu.ufcg.dsc.compiladores.pascal.parameter_type;
import br.edu.ufcg.dsc.compiladores.pascal.pointer_type;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_and_function_declaration_part;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_body;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_declaration;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_heading;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_identification;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_identifier;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_parameter_section;
import br.edu.ufcg.dsc.compiladores.pascal.procedure_statement;
import br.edu.ufcg.dsc.compiladores.pascal.program;
import br.edu.ufcg.dsc.compiladores.pascal.program_heading;
import br.edu.ufcg.dsc.compiladores.pascal.record_section;
import br.edu.ufcg.dsc.compiladores.pascal.record_type;
import br.edu.ufcg.dsc.compiladores.pascal.record_variable;
import br.edu.ufcg.dsc.compiladores.pascal.repeat_statement;
import br.edu.ufcg.dsc.compiladores.pascal.repetitive_statement;
import br.edu.ufcg.dsc.compiladores.pascal.result_type;
import br.edu.ufcg.dsc.compiladores.pascal.scale_factor;
import br.edu.ufcg.dsc.compiladores.pascal.set;
import br.edu.ufcg.dsc.compiladores.pascal.set_type;
import br.edu.ufcg.dsc.compiladores.pascal.simple_expression;
import br.edu.ufcg.dsc.compiladores.pascal.simple_statement;
import br.edu.ufcg.dsc.compiladores.pascal.simple_type;
import br.edu.ufcg.dsc.compiladores.pascal.statement;
import br.edu.ufcg.dsc.compiladores.pascal.statement_sequence;
import br.edu.ufcg.dsc.compiladores.pascal.structured_statement;
import br.edu.ufcg.dsc.compiladores.pascal.structured_type;
import br.edu.ufcg.dsc.compiladores.pascal.subrange_type;
import br.edu.ufcg.dsc.compiladores.pascal.term;
import br.edu.ufcg.dsc.compiladores.pascal.type;
import br.edu.ufcg.dsc.compiladores.pascal.type_definition;
import br.edu.ufcg.dsc.compiladores.pascal.type_definition_part;
import br.edu.ufcg.dsc.compiladores.pascal.type_identifier;
import br.edu.ufcg.dsc.compiladores.pascal.unpacked_conformant_array_schema;
import br.edu.ufcg.dsc.compiladores.pascal.unpacked_structured_type;
import br.edu.ufcg.dsc.compiladores.pascal.upper_bound;
import br.edu.ufcg.dsc.compiladores.pascal.value_parameter_section;
import br.edu.ufcg.dsc.compiladores.pascal.variable;
import br.edu.ufcg.dsc.compiladores.pascal.variable_declaration;
import br.edu.ufcg.dsc.compiladores.pascal.variable_declaration_part;
import br.edu.ufcg.dsc.compiladores.pascal.variable_identifier;
import br.edu.ufcg.dsc.compiladores.pascal.variable_l;
import br.edu.ufcg.dsc.compiladores.pascal.variable_parameter_section;
import br.edu.ufcg.dsc.compiladores.pascal.variant;
import br.edu.ufcg.dsc.compiladores.pascal.variant_part;
import br.edu.ufcg.dsc.compiladores.pascal.while_statement;
import br.edu.ufcg.dsc.compiladores.pascal.with_statement;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class PascalPackageImpl extends EPackageImpl implements PascalPackage
{
  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass modelEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass programEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass program_headingEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass blockEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass identifier_listEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass declaration_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_and_function_declaration_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass function_declarationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass function_identificationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass function_identifierEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass function_bodyEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_declarationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_bodyEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_identificationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_identifierEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_headingEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass formal_parameter_listEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass formal_parameter_sectionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass function_parameter_sectionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass function_headingEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass result_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_parameter_sectionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variable_parameter_sectionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass value_parameter_sectionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass parameter_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass conformant_array_schemaEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass unpacked_conformant_array_schemaEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass packed_conformant_array_schemaEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass bound_especificationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass ordinal_type_identifierEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variable_declaration_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variable_declarationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass label_declaration_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass constant_definition_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass constant_definitionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass type_definition_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass type_definitionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass pointer_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass type_identifierEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass structured_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass unpacked_structured_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass file_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass file_component_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass set_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass base_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass record_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass field_listEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass fixed_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass record_sectionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variant_partEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variantEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass case_label_listEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass array_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass index_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass element_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass simple_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass subrange_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass lower_boundEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass upper_boundEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass enumerated_typeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass labelEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass digiT_SEQUENCEEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass statemenT_PARTEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass statement_sequenceEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass structured_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass with_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass record_variableEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass conditional_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass case_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass case_limbEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass if_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass repetitive_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass for_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass initial_expressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass final_expressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variable_identifierEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass repeat_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass while_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass compound_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass simple_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass goto_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass procedure_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass assignment_statementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass expressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass simple_expressionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass termEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass factorEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass function_designatorEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass actual_parameter_listEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass actual_parameterEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass actual_valueEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass setEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass element_listEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variableEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variable_lEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass expression_listEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass constantEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass reaL_NUMBEREClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass scale_factorEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass proceduresAndFunctionDeclarationEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass functionDeclarationWithHeadingEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass fieldListClassEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass variableLClassEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass constFromIdEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass constFromDigitSequenceEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass constFromRealEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass constFromStringEClass = null;

  /**
   * Creates an instance of the model <b>Package</b>, registered with
   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
   * package URI value.
   * <p>Note: the correct way to create the package is via the static
   * factory method {@link #init init()}, which also performs
   * initialization of the package, or returns the registered package,
   * if one already exists.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.eclipse.emf.ecore.EPackage.Registry
   * @see br.edu.ufcg.dsc.compiladores.pascal.PascalPackage#eNS_URI
   * @see #init()
   * @generated
   */
  private PascalPackageImpl()
  {
    super(eNS_URI, PascalFactory.eINSTANCE);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private static boolean isInited = false;

  /**
   * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
   * 
   * <p>This method is used to initialize {@link PascalPackage#eINSTANCE} when that field is accessed.
   * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #eNS_URI
   * @see #createPackageContents()
   * @see #initializePackageContents()
   * @generated
   */
  public static PascalPackage init()
  {
    if (isInited) return (PascalPackage)EPackage.Registry.INSTANCE.getEPackage(PascalPackage.eNS_URI);

    // Obtain or create and register package
    PascalPackageImpl thePascalPackage = (PascalPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PascalPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PascalPackageImpl());

    isInited = true;

    // Create package meta-data objects
    thePascalPackage.createPackageContents();

    // Initialize created meta-data
    thePascalPackage.initializePackageContents();

    // Mark meta-data to indicate it can't be changed
    thePascalPackage.freeze();

  
    // Update the registry and return the package
    EPackage.Registry.INSTANCE.put(PascalPackage.eNS_URI, thePascalPackage);
    return thePascalPackage;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getModel()
  {
    return modelEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getModel_Programs()
  {
    return (EReference)modelEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprogram()
  {
    return programEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprogram_Heading()
  {
    return (EReference)programEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprogram_Block()
  {
    return (EReference)programEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprogram_heading()
  {
    return program_headingEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getprogram_heading_ProgramName()
  {
    return (EAttribute)program_headingEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprogram_heading_Params()
  {
    return (EReference)program_headingEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getblock()
  {
    return blockEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getblock_DeclarationPart()
  {
    return (EReference)blockEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getblock_StatementPart()
  {
    return (EReference)blockEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getidentifier_list()
  {
    return identifier_listEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getidentifier_list_Identifiers()
  {
    return (EAttribute)identifier_listEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getdeclaration_part()
  {
    return declaration_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getdeclaration_part_LabelDeclarationPart()
  {
    return (EReference)declaration_partEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getdeclaration_part_ConstantDeclarationPart()
  {
    return (EReference)declaration_partEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getdeclaration_part_TypeDeclarationPart()
  {
    return (EReference)declaration_partEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getdeclaration_part_VariableDeclarationPart()
  {
    return (EReference)declaration_partEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getdeclaration_part_ProcedureAndFunctionDeclarationPart()
  {
    return (EReference)declaration_partEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_and_function_declaration_part()
  {
    return procedure_and_function_declaration_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfunction_declaration()
  {
    return function_declarationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_declaration_Heading()
  {
    return (EReference)function_declarationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_declaration_Body()
  {
    return (EReference)function_declarationEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfunction_identification()
  {
    return function_identificationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_identification_FunctionName()
  {
    return (EReference)function_identificationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfunction_identifier()
  {
    return function_identifierEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getfunction_identifier_Identifier()
  {
    return (EAttribute)function_identifierEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfunction_body()
  {
    return function_bodyEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_body_Block()
  {
    return (EReference)function_bodyEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_declaration()
  {
    return procedure_declarationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_declaration_Heading()
  {
    return (EReference)procedure_declarationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_declaration_Body()
  {
    return (EReference)procedure_declarationEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_body()
  {
    return procedure_bodyEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_body_Block()
  {
    return (EReference)procedure_bodyEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_identification()
  {
    return procedure_identificationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_identification_ProcedureIdentifier()
  {
    return (EReference)procedure_identificationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_identifier()
  {
    return procedure_identifierEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getprocedure_identifier_Identifier()
  {
    return (EAttribute)procedure_identifierEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_heading()
  {
    return procedure_headingEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getprocedure_heading_ProcedureName()
  {
    return (EAttribute)procedure_headingEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_heading_ParameterList()
  {
    return (EReference)procedure_headingEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getformal_parameter_list()
  {
    return formal_parameter_listEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getformal_parameter_list_Parameters()
  {
    return (EReference)formal_parameter_listEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getformal_parameter_section()
  {
    return formal_parameter_sectionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfunction_parameter_section()
  {
    return function_parameter_sectionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_parameter_section_Heading()
  {
    return (EReference)function_parameter_sectionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfunction_heading()
  {
    return function_headingEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getfunction_heading_FunctionName()
  {
    return (EAttribute)function_headingEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_heading_ParameterList()
  {
    return (EReference)function_headingEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_heading_ResultType()
  {
    return (EReference)function_headingEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getresult_type()
  {
    return result_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_parameter_section()
  {
    return procedure_parameter_sectionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_parameter_section_Heading()
  {
    return (EReference)procedure_parameter_sectionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariable_parameter_section()
  {
    return variable_parameter_sectionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariable_parameter_section_IdentifierList()
  {
    return (EReference)variable_parameter_sectionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariable_parameter_section_Type()
  {
    return (EReference)variable_parameter_sectionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvalue_parameter_section()
  {
    return value_parameter_sectionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvalue_parameter_section_IdentifierList()
  {
    return (EReference)value_parameter_sectionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvalue_parameter_section_Type()
  {
    return (EReference)value_parameter_sectionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getparameter_type()
  {
    return parameter_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getconformant_array_schema()
  {
    return conformant_array_schemaEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getconformant_array_schema_TypeIdentifier()
  {
    return (EReference)conformant_array_schemaEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getunpacked_conformant_array_schema()
  {
    return unpacked_conformant_array_schemaEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getunpacked_conformant_array_schema_BoundEspecifications()
  {
    return (EReference)unpacked_conformant_array_schemaEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getunpacked_conformant_array_schema_ConformantArraySchema()
  {
    return (EReference)unpacked_conformant_array_schemaEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getpacked_conformant_array_schema()
  {
    return packed_conformant_array_schemaEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getpacked_conformant_array_schema_BoundEspecification()
  {
    return (EReference)packed_conformant_array_schemaEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getbound_especification()
  {
    return bound_especificationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getordinal_type_identifier()
  {
    return ordinal_type_identifierEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariable_declaration_part()
  {
    return variable_declaration_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariable_declaration_part_Variables()
  {
    return (EReference)variable_declaration_partEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariable_declaration()
  {
    return variable_declarationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariable_declaration_VariableNames()
  {
    return (EReference)variable_declarationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariable_declaration_Type()
  {
    return (EReference)variable_declarationEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getlabel_declaration_part()
  {
    return label_declaration_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getlabel_declaration_part_Labels()
  {
    return (EReference)label_declaration_partEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getconstant_definition_part()
  {
    return constant_definition_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getconstant_definition_part_ConstantDefinitions()
  {
    return (EReference)constant_definition_partEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getconstant_definition()
  {
    return constant_definitionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getconstant_definition_ConstantName()
  {
    return (EAttribute)constant_definitionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getconstant_definition_Value()
  {
    return (EReference)constant_definitionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass gettype_definition_part()
  {
    return type_definition_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference gettype_definition_part_TypeDefinitions()
  {
    return (EReference)type_definition_partEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass gettype_definition()
  {
    return type_definitionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute gettype_definition_TypeName()
  {
    return (EAttribute)type_definitionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference gettype_definition_Type()
  {
    return (EReference)type_definitionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass gettype()
  {
    return typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getpointer_type()
  {
    return pointer_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getpointer_type_PointerTypeName()
  {
    return (EReference)pointer_typeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass gettype_identifier()
  {
    return type_identifierEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute gettype_identifier_TypeIdentifierName()
  {
    return (EAttribute)type_identifierEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getstructured_type()
  {
    return structured_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getstructured_type_UnpackedStructuredType()
  {
    return (EReference)structured_typeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getunpacked_structured_type()
  {
    return unpacked_structured_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfile_type()
  {
    return file_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfile_component_type()
  {
    return file_component_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getset_type()
  {
    return set_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getbase_type()
  {
    return base_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getrecord_type()
  {
    return record_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfield_list()
  {
    return field_listEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfixed_part()
  {
    return fixed_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfixed_part_RecordSections()
  {
    return (EReference)fixed_partEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getrecord_section()
  {
    return record_sectionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getrecord_section_Identifierlist()
  {
    return (EReference)record_sectionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getrecord_section_Type()
  {
    return (EReference)record_sectionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariant_part()
  {
    return variant_partEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariant_part_Variants()
  {
    return (EReference)variant_partEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariant()
  {
    return variantEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariant_CaseLabelList()
  {
    return (EReference)variantEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariant_FieldList()
  {
    return (EReference)variantEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getcase_label_list()
  {
    return case_label_listEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getcase_label_list_Constants()
  {
    return (EReference)case_label_listEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getarray_type()
  {
    return array_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getarray_type_IndexTypes()
  {
    return (EReference)array_typeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getarray_type_ElementType()
  {
    return (EReference)array_typeEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getindex_type()
  {
    return index_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getelement_type()
  {
    return element_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getsimple_type()
  {
    return simple_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getsubrange_type()
  {
    return subrange_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getsubrange_type_LowerBound()
  {
    return (EReference)subrange_typeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getsubrange_type_UpperBound()
  {
    return (EReference)subrange_typeEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getlower_bound()
  {
    return lower_boundEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getlower_bound_Value()
  {
    return (EReference)lower_boundEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getupper_bound()
  {
    return upper_boundEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getupper_bound_Value()
  {
    return (EReference)upper_boundEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getenumerated_type()
  {
    return enumerated_typeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getLABEL()
  {
    return labelEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getDIGIT_SEQUENCE()
  {
    return digiT_SEQUENCEEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getDIGIT_SEQUENCE_Sign()
  {
    return (EAttribute)digiT_SEQUENCEEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getDIGIT_SEQUENCE_Value()
  {
    return (EAttribute)digiT_SEQUENCEEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getSTATEMENT_PART()
  {
    return statemenT_PARTEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getstatement_sequence()
  {
    return statement_sequenceEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getstatement_sequence_Statements()
  {
    return (EReference)statement_sequenceEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getstatement()
  {
    return statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getstatement_Label()
  {
    return (EReference)statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getstatement_SimpleStatement()
  {
    return (EReference)statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getstatement_StructuredStatement()
  {
    return (EReference)statementEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getstructured_statement()
  {
    return structured_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getwith_statement()
  {
    return with_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getwith_statement_RecordVariables()
  {
    return (EReference)with_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getwith_statement_Statement()
  {
    return (EReference)with_statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getrecord_variable()
  {
    return record_variableEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getconditional_statement()
  {
    return conditional_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getconditional_statement_Expression()
  {
    return (EReference)conditional_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getcase_statement()
  {
    return case_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getcase_statement_CaseLimbs()
  {
    return (EReference)case_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getcase_limb()
  {
    return case_limbEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getcase_limb_CaseLabelList()
  {
    return (EReference)case_limbEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getcase_limb_Statement()
  {
    return (EReference)case_limbEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getif_statement()
  {
    return if_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getif_statement_Statement()
  {
    return (EReference)if_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getif_statement_StatementElse()
  {
    return (EReference)if_statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getrepetitive_statement()
  {
    return repetitive_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfor_statement()
  {
    return for_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfor_statement_VariableIdentifier()
  {
    return (EReference)for_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfor_statement_InitialExpression()
  {
    return (EReference)for_statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfor_statement_FinalExpression()
  {
    return (EReference)for_statementEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfor_statement_Statement()
  {
    return (EReference)for_statementEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getinitial_expression()
  {
    return initial_expressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfinal_expression()
  {
    return final_expressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariable_identifier()
  {
    return variable_identifierEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getvariable_identifier_Identifier()
  {
    return (EAttribute)variable_identifierEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getrepeat_statement()
  {
    return repeat_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getrepeat_statement_StatementSequence()
  {
    return (EReference)repeat_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getrepeat_statement_Expression()
  {
    return (EReference)repeat_statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getwhile_statement()
  {
    return while_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getwhile_statement_Expression()
  {
    return (EReference)while_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getwhile_statement_Statement()
  {
    return (EReference)while_statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getcompound_statement()
  {
    return compound_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getsimple_statement()
  {
    return simple_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getgoto_statement()
  {
    return goto_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getgoto_statement_Label()
  {
    return (EReference)goto_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getprocedure_statement()
  {
    return procedure_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_statement_ProcedureIdentifier()
  {
    return (EReference)procedure_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getprocedure_statement_ActualParameterList()
  {
    return (EReference)procedure_statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getassignment_statement()
  {
    return assignment_statementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getassignment_statement_Variable()
  {
    return (EReference)assignment_statementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getassignment_statement_Expression()
  {
    return (EReference)assignment_statementEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getexpression()
  {
    return expressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getexpression_LeftExpression()
  {
    return (EReference)expressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getexpression_RelOp()
  {
    return (EAttribute)expressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getexpression_RightExpression()
  {
    return (EReference)expressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getsimple_expression()
  {
    return simple_expressionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getsimple_expression_Sign()
  {
    return (EAttribute)simple_expressionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getsimple_expression_LeftTerm()
  {
    return (EReference)simple_expressionEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getsimple_expression_AddOps()
  {
    return (EAttribute)simple_expressionEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getsimple_expression_RightTerms()
  {
    return (EReference)simple_expressionEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getterm()
  {
    return termEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getterm_LeftFactor()
  {
    return (EReference)termEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getterm_Multops()
  {
    return (EAttribute)termEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getterm_RightFactors()
  {
    return (EReference)termEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfactor()
  {
    return factorEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getfunction_designator()
  {
    return function_designatorEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_designator_FunctionIdentifier()
  {
    return (EReference)function_designatorEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getfunction_designator_ActualParameterList()
  {
    return (EReference)function_designatorEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getactual_parameter_list()
  {
    return actual_parameter_listEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getactual_parameter_list_ActualParameters()
  {
    return (EReference)actual_parameter_listEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getactual_parameter()
  {
    return actual_parameterEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getactual_value()
  {
    return actual_valueEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getset()
  {
    return setEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getelement_list()
  {
    return element_listEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getelement_list_Expressions()
  {
    return (EReference)element_listEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariable()
  {
    return variableEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getvariable_Name()
  {
    return (EAttribute)variableEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getvariable_VariableL()
  {
    return (EReference)variableEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getvariable_l()
  {
    return variable_lEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getexpression_list()
  {
    return expression_listEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getexpression_list_Expressions()
  {
    return (EReference)expression_listEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getconstant()
  {
    return constantEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getREAL_NUMBER()
  {
    return reaL_NUMBEREClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getREAL_NUMBER_DigitSequence()
  {
    return (EReference)reaL_NUMBEREClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getREAL_NUMBER_UnsignedDigitSequence()
  {
    return (EAttribute)reaL_NUMBEREClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getREAL_NUMBER_ScaleFactor()
  {
    return (EReference)reaL_NUMBEREClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getscale_factor()
  {
    return scale_factorEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getProceduresAndFunctionDeclaration()
  {
    return proceduresAndFunctionDeclarationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getProceduresAndFunctionDeclaration_Procedures()
  {
    return (EReference)proceduresAndFunctionDeclarationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getProceduresAndFunctionDeclaration_Functions()
  {
    return (EReference)proceduresAndFunctionDeclarationEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getFunctionDeclarationWithHeading()
  {
    return functionDeclarationWithHeadingEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getFieldListClass()
  {
    return fieldListClassEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getFieldListClass_FixedPart()
  {
    return (EReference)fieldListClassEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getFieldListClass_VariantPart()
  {
    return (EReference)fieldListClassEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getVariableLClass()
  {
    return variableLClassEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getVariableLClass_ExpressionList()
  {
    return (EReference)variableLClassEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getVariableLClass_VariableL()
  {
    return (EReference)variableLClassEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getVariableLClass_Identifier()
  {
    return (EAttribute)variableLClassEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getConstFromId()
  {
    return constFromIdEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConstFromId_Sign()
  {
    return (EAttribute)constFromIdEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConstFromId_Identifier()
  {
    return (EAttribute)constFromIdEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getConstFromDigitSequence()
  {
    return constFromDigitSequenceEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConstFromDigitSequence_Sign()
  {
    return (EAttribute)constFromDigitSequenceEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConstFromDigitSequence_DigitSequence()
  {
    return (EReference)constFromDigitSequenceEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getConstFromReal()
  {
    return constFromRealEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConstFromReal_Sign()
  {
    return (EAttribute)constFromRealEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConstFromReal_RealNumber()
  {
    return (EReference)constFromRealEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getConstFromString()
  {
    return constFromStringEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConstFromString_String()
  {
    return (EAttribute)constFromStringEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public PascalFactory getPascalFactory()
  {
    return (PascalFactory)getEFactoryInstance();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isCreated = false;

  /**
   * Creates the meta-model objects for the package.  This method is
   * guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void createPackageContents()
  {
    if (isCreated) return;
    isCreated = true;

    // Create classes and their features
    modelEClass = createEClass(MODEL);
    createEReference(modelEClass, MODEL__PROGRAMS);

    programEClass = createEClass(PROGRAM);
    createEReference(programEClass, PROGRAM__HEADING);
    createEReference(programEClass, PROGRAM__BLOCK);

    program_headingEClass = createEClass(PROGRAM_HEADING);
    createEAttribute(program_headingEClass, PROGRAM_HEADING__PROGRAM_NAME);
    createEReference(program_headingEClass, PROGRAM_HEADING__PARAMS);

    blockEClass = createEClass(BLOCK);
    createEReference(blockEClass, BLOCK__DECLARATION_PART);
    createEReference(blockEClass, BLOCK__STATEMENT_PART);

    identifier_listEClass = createEClass(IDENTIFIER_LIST);
    createEAttribute(identifier_listEClass, IDENTIFIER_LIST__IDENTIFIERS);

    declaration_partEClass = createEClass(DECLARATION_PART);
    createEReference(declaration_partEClass, DECLARATION_PART__LABEL_DECLARATION_PART);
    createEReference(declaration_partEClass, DECLARATION_PART__CONSTANT_DECLARATION_PART);
    createEReference(declaration_partEClass, DECLARATION_PART__TYPE_DECLARATION_PART);
    createEReference(declaration_partEClass, DECLARATION_PART__VARIABLE_DECLARATION_PART);
    createEReference(declaration_partEClass, DECLARATION_PART__PROCEDURE_AND_FUNCTION_DECLARATION_PART);

    procedure_and_function_declaration_partEClass = createEClass(PROCEDURE_AND_FUNCTION_DECLARATION_PART);

    function_declarationEClass = createEClass(FUNCTION_DECLARATION);
    createEReference(function_declarationEClass, FUNCTION_DECLARATION__HEADING);
    createEReference(function_declarationEClass, FUNCTION_DECLARATION__BODY);

    function_identificationEClass = createEClass(FUNCTION_IDENTIFICATION);
    createEReference(function_identificationEClass, FUNCTION_IDENTIFICATION__FUNCTION_NAME);

    function_identifierEClass = createEClass(FUNCTION_IDENTIFIER);
    createEAttribute(function_identifierEClass, FUNCTION_IDENTIFIER__IDENTIFIER);

    function_bodyEClass = createEClass(FUNCTION_BODY);
    createEReference(function_bodyEClass, FUNCTION_BODY__BLOCK);

    procedure_declarationEClass = createEClass(PROCEDURE_DECLARATION);
    createEReference(procedure_declarationEClass, PROCEDURE_DECLARATION__HEADING);
    createEReference(procedure_declarationEClass, PROCEDURE_DECLARATION__BODY);

    procedure_bodyEClass = createEClass(PROCEDURE_BODY);
    createEReference(procedure_bodyEClass, PROCEDURE_BODY__BLOCK);

    procedure_identificationEClass = createEClass(PROCEDURE_IDENTIFICATION);
    createEReference(procedure_identificationEClass, PROCEDURE_IDENTIFICATION__PROCEDURE_IDENTIFIER);

    procedure_identifierEClass = createEClass(PROCEDURE_IDENTIFIER);
    createEAttribute(procedure_identifierEClass, PROCEDURE_IDENTIFIER__IDENTIFIER);

    procedure_headingEClass = createEClass(PROCEDURE_HEADING);
    createEAttribute(procedure_headingEClass, PROCEDURE_HEADING__PROCEDURE_NAME);
    createEReference(procedure_headingEClass, PROCEDURE_HEADING__PARAMETER_LIST);

    formal_parameter_listEClass = createEClass(FORMAL_PARAMETER_LIST);
    createEReference(formal_parameter_listEClass, FORMAL_PARAMETER_LIST__PARAMETERS);

    formal_parameter_sectionEClass = createEClass(FORMAL_PARAMETER_SECTION);

    function_parameter_sectionEClass = createEClass(FUNCTION_PARAMETER_SECTION);
    createEReference(function_parameter_sectionEClass, FUNCTION_PARAMETER_SECTION__HEADING);

    function_headingEClass = createEClass(FUNCTION_HEADING);
    createEAttribute(function_headingEClass, FUNCTION_HEADING__FUNCTION_NAME);
    createEReference(function_headingEClass, FUNCTION_HEADING__PARAMETER_LIST);
    createEReference(function_headingEClass, FUNCTION_HEADING__RESULT_TYPE);

    result_typeEClass = createEClass(RESULT_TYPE);

    procedure_parameter_sectionEClass = createEClass(PROCEDURE_PARAMETER_SECTION);
    createEReference(procedure_parameter_sectionEClass, PROCEDURE_PARAMETER_SECTION__HEADING);

    variable_parameter_sectionEClass = createEClass(VARIABLE_PARAMETER_SECTION);
    createEReference(variable_parameter_sectionEClass, VARIABLE_PARAMETER_SECTION__IDENTIFIER_LIST);
    createEReference(variable_parameter_sectionEClass, VARIABLE_PARAMETER_SECTION__TYPE);

    value_parameter_sectionEClass = createEClass(VALUE_PARAMETER_SECTION);
    createEReference(value_parameter_sectionEClass, VALUE_PARAMETER_SECTION__IDENTIFIER_LIST);
    createEReference(value_parameter_sectionEClass, VALUE_PARAMETER_SECTION__TYPE);

    parameter_typeEClass = createEClass(PARAMETER_TYPE);

    conformant_array_schemaEClass = createEClass(CONFORMANT_ARRAY_SCHEMA);
    createEReference(conformant_array_schemaEClass, CONFORMANT_ARRAY_SCHEMA__TYPE_IDENTIFIER);

    unpacked_conformant_array_schemaEClass = createEClass(UNPACKED_CONFORMANT_ARRAY_SCHEMA);
    createEReference(unpacked_conformant_array_schemaEClass, UNPACKED_CONFORMANT_ARRAY_SCHEMA__BOUND_ESPECIFICATIONS);
    createEReference(unpacked_conformant_array_schemaEClass, UNPACKED_CONFORMANT_ARRAY_SCHEMA__CONFORMANT_ARRAY_SCHEMA);

    packed_conformant_array_schemaEClass = createEClass(PACKED_CONFORMANT_ARRAY_SCHEMA);
    createEReference(packed_conformant_array_schemaEClass, PACKED_CONFORMANT_ARRAY_SCHEMA__BOUND_ESPECIFICATION);

    bound_especificationEClass = createEClass(BOUND_ESPECIFICATION);

    ordinal_type_identifierEClass = createEClass(ORDINAL_TYPE_IDENTIFIER);

    variable_declaration_partEClass = createEClass(VARIABLE_DECLARATION_PART);
    createEReference(variable_declaration_partEClass, VARIABLE_DECLARATION_PART__VARIABLES);

    variable_declarationEClass = createEClass(VARIABLE_DECLARATION);
    createEReference(variable_declarationEClass, VARIABLE_DECLARATION__VARIABLE_NAMES);
    createEReference(variable_declarationEClass, VARIABLE_DECLARATION__TYPE);

    label_declaration_partEClass = createEClass(LABEL_DECLARATION_PART);
    createEReference(label_declaration_partEClass, LABEL_DECLARATION_PART__LABELS);

    constant_definition_partEClass = createEClass(CONSTANT_DEFINITION_PART);
    createEReference(constant_definition_partEClass, CONSTANT_DEFINITION_PART__CONSTANT_DEFINITIONS);

    constant_definitionEClass = createEClass(CONSTANT_DEFINITION);
    createEAttribute(constant_definitionEClass, CONSTANT_DEFINITION__CONSTANT_NAME);
    createEReference(constant_definitionEClass, CONSTANT_DEFINITION__VALUE);

    type_definition_partEClass = createEClass(TYPE_DEFINITION_PART);
    createEReference(type_definition_partEClass, TYPE_DEFINITION_PART__TYPE_DEFINITIONS);

    type_definitionEClass = createEClass(TYPE_DEFINITION);
    createEAttribute(type_definitionEClass, TYPE_DEFINITION__TYPE_NAME);
    createEReference(type_definitionEClass, TYPE_DEFINITION__TYPE);

    typeEClass = createEClass(TYPE);

    pointer_typeEClass = createEClass(POINTER_TYPE);
    createEReference(pointer_typeEClass, POINTER_TYPE__POINTER_TYPE_NAME);

    type_identifierEClass = createEClass(TYPE_IDENTIFIER);
    createEAttribute(type_identifierEClass, TYPE_IDENTIFIER__TYPE_IDENTIFIER_NAME);

    structured_typeEClass = createEClass(STRUCTURED_TYPE);
    createEReference(structured_typeEClass, STRUCTURED_TYPE__UNPACKED_STRUCTURED_TYPE);

    unpacked_structured_typeEClass = createEClass(UNPACKED_STRUCTURED_TYPE);

    file_typeEClass = createEClass(FILE_TYPE);

    file_component_typeEClass = createEClass(FILE_COMPONENT_TYPE);

    set_typeEClass = createEClass(SET_TYPE);

    base_typeEClass = createEClass(BASE_TYPE);

    record_typeEClass = createEClass(RECORD_TYPE);

    field_listEClass = createEClass(FIELD_LIST);

    fixed_partEClass = createEClass(FIXED_PART);
    createEReference(fixed_partEClass, FIXED_PART__RECORD_SECTIONS);

    record_sectionEClass = createEClass(RECORD_SECTION);
    createEReference(record_sectionEClass, RECORD_SECTION__IDENTIFIERLIST);
    createEReference(record_sectionEClass, RECORD_SECTION__TYPE);

    variant_partEClass = createEClass(VARIANT_PART);
    createEReference(variant_partEClass, VARIANT_PART__VARIANTS);

    variantEClass = createEClass(VARIANT);
    createEReference(variantEClass, VARIANT__CASE_LABEL_LIST);
    createEReference(variantEClass, VARIANT__FIELD_LIST);

    case_label_listEClass = createEClass(CASE_LABEL_LIST);
    createEReference(case_label_listEClass, CASE_LABEL_LIST__CONSTANTS);

    array_typeEClass = createEClass(ARRAY_TYPE);
    createEReference(array_typeEClass, ARRAY_TYPE__INDEX_TYPES);
    createEReference(array_typeEClass, ARRAY_TYPE__ELEMENT_TYPE);

    index_typeEClass = createEClass(INDEX_TYPE);

    element_typeEClass = createEClass(ELEMENT_TYPE);

    simple_typeEClass = createEClass(SIMPLE_TYPE);

    subrange_typeEClass = createEClass(SUBRANGE_TYPE);
    createEReference(subrange_typeEClass, SUBRANGE_TYPE__LOWER_BOUND);
    createEReference(subrange_typeEClass, SUBRANGE_TYPE__UPPER_BOUND);

    lower_boundEClass = createEClass(LOWER_BOUND);
    createEReference(lower_boundEClass, LOWER_BOUND__VALUE);

    upper_boundEClass = createEClass(UPPER_BOUND);
    createEReference(upper_boundEClass, UPPER_BOUND__VALUE);

    enumerated_typeEClass = createEClass(ENUMERATED_TYPE);

    labelEClass = createEClass(LABEL);

    digiT_SEQUENCEEClass = createEClass(DIGIT_SEQUENCE);
    createEAttribute(digiT_SEQUENCEEClass, DIGIT_SEQUENCE__SIGN);
    createEAttribute(digiT_SEQUENCEEClass, DIGIT_SEQUENCE__VALUE);

    statemenT_PARTEClass = createEClass(STATEMENT_PART);

    statement_sequenceEClass = createEClass(STATEMENT_SEQUENCE);
    createEReference(statement_sequenceEClass, STATEMENT_SEQUENCE__STATEMENTS);

    statementEClass = createEClass(STATEMENT);
    createEReference(statementEClass, STATEMENT__LABEL);
    createEReference(statementEClass, STATEMENT__SIMPLE_STATEMENT);
    createEReference(statementEClass, STATEMENT__STRUCTURED_STATEMENT);

    structured_statementEClass = createEClass(STRUCTURED_STATEMENT);

    with_statementEClass = createEClass(WITH_STATEMENT);
    createEReference(with_statementEClass, WITH_STATEMENT__RECORD_VARIABLES);
    createEReference(with_statementEClass, WITH_STATEMENT__STATEMENT);

    record_variableEClass = createEClass(RECORD_VARIABLE);

    conditional_statementEClass = createEClass(CONDITIONAL_STATEMENT);
    createEReference(conditional_statementEClass, CONDITIONAL_STATEMENT__EXPRESSION);

    case_statementEClass = createEClass(CASE_STATEMENT);
    createEReference(case_statementEClass, CASE_STATEMENT__CASE_LIMBS);

    case_limbEClass = createEClass(CASE_LIMB);
    createEReference(case_limbEClass, CASE_LIMB__CASE_LABEL_LIST);
    createEReference(case_limbEClass, CASE_LIMB__STATEMENT);

    if_statementEClass = createEClass(IF_STATEMENT);
    createEReference(if_statementEClass, IF_STATEMENT__STATEMENT);
    createEReference(if_statementEClass, IF_STATEMENT__STATEMENT_ELSE);

    repetitive_statementEClass = createEClass(REPETITIVE_STATEMENT);

    for_statementEClass = createEClass(FOR_STATEMENT);
    createEReference(for_statementEClass, FOR_STATEMENT__VARIABLE_IDENTIFIER);
    createEReference(for_statementEClass, FOR_STATEMENT__INITIAL_EXPRESSION);
    createEReference(for_statementEClass, FOR_STATEMENT__FINAL_EXPRESSION);
    createEReference(for_statementEClass, FOR_STATEMENT__STATEMENT);

    initial_expressionEClass = createEClass(INITIAL_EXPRESSION);

    final_expressionEClass = createEClass(FINAL_EXPRESSION);

    variable_identifierEClass = createEClass(VARIABLE_IDENTIFIER);
    createEAttribute(variable_identifierEClass, VARIABLE_IDENTIFIER__IDENTIFIER);

    repeat_statementEClass = createEClass(REPEAT_STATEMENT);
    createEReference(repeat_statementEClass, REPEAT_STATEMENT__STATEMENT_SEQUENCE);
    createEReference(repeat_statementEClass, REPEAT_STATEMENT__EXPRESSION);

    while_statementEClass = createEClass(WHILE_STATEMENT);
    createEReference(while_statementEClass, WHILE_STATEMENT__EXPRESSION);
    createEReference(while_statementEClass, WHILE_STATEMENT__STATEMENT);

    compound_statementEClass = createEClass(COMPOUND_STATEMENT);

    simple_statementEClass = createEClass(SIMPLE_STATEMENT);

    goto_statementEClass = createEClass(GOTO_STATEMENT);
    createEReference(goto_statementEClass, GOTO_STATEMENT__LABEL);

    procedure_statementEClass = createEClass(PROCEDURE_STATEMENT);
    createEReference(procedure_statementEClass, PROCEDURE_STATEMENT__PROCEDURE_IDENTIFIER);
    createEReference(procedure_statementEClass, PROCEDURE_STATEMENT__ACTUAL_PARAMETER_LIST);

    assignment_statementEClass = createEClass(ASSIGNMENT_STATEMENT);
    createEReference(assignment_statementEClass, ASSIGNMENT_STATEMENT__VARIABLE);
    createEReference(assignment_statementEClass, ASSIGNMENT_STATEMENT__EXPRESSION);

    expressionEClass = createEClass(EXPRESSION);
    createEReference(expressionEClass, EXPRESSION__LEFT_EXPRESSION);
    createEAttribute(expressionEClass, EXPRESSION__REL_OP);
    createEReference(expressionEClass, EXPRESSION__RIGHT_EXPRESSION);

    simple_expressionEClass = createEClass(SIMPLE_EXPRESSION);
    createEAttribute(simple_expressionEClass, SIMPLE_EXPRESSION__SIGN);
    createEReference(simple_expressionEClass, SIMPLE_EXPRESSION__LEFT_TERM);
    createEAttribute(simple_expressionEClass, SIMPLE_EXPRESSION__ADD_OPS);
    createEReference(simple_expressionEClass, SIMPLE_EXPRESSION__RIGHT_TERMS);

    termEClass = createEClass(TERM);
    createEReference(termEClass, TERM__LEFT_FACTOR);
    createEAttribute(termEClass, TERM__MULTOPS);
    createEReference(termEClass, TERM__RIGHT_FACTORS);

    factorEClass = createEClass(FACTOR);

    function_designatorEClass = createEClass(FUNCTION_DESIGNATOR);
    createEReference(function_designatorEClass, FUNCTION_DESIGNATOR__FUNCTION_IDENTIFIER);
    createEReference(function_designatorEClass, FUNCTION_DESIGNATOR__ACTUAL_PARAMETER_LIST);

    actual_parameter_listEClass = createEClass(ACTUAL_PARAMETER_LIST);
    createEReference(actual_parameter_listEClass, ACTUAL_PARAMETER_LIST__ACTUAL_PARAMETERS);

    actual_parameterEClass = createEClass(ACTUAL_PARAMETER);

    actual_valueEClass = createEClass(ACTUAL_VALUE);

    setEClass = createEClass(SET);

    element_listEClass = createEClass(ELEMENT_LIST);
    createEReference(element_listEClass, ELEMENT_LIST__EXPRESSIONS);

    variableEClass = createEClass(VARIABLE);
    createEAttribute(variableEClass, VARIABLE__NAME);
    createEReference(variableEClass, VARIABLE__VARIABLE_L);

    variable_lEClass = createEClass(VARIABLE_L);

    expression_listEClass = createEClass(EXPRESSION_LIST);
    createEReference(expression_listEClass, EXPRESSION_LIST__EXPRESSIONS);

    constantEClass = createEClass(CONSTANT);

    reaL_NUMBEREClass = createEClass(REAL_NUMBER);
    createEReference(reaL_NUMBEREClass, REAL_NUMBER__DIGIT_SEQUENCE);
    createEAttribute(reaL_NUMBEREClass, REAL_NUMBER__UNSIGNED_DIGIT_SEQUENCE);
    createEReference(reaL_NUMBEREClass, REAL_NUMBER__SCALE_FACTOR);

    scale_factorEClass = createEClass(SCALE_FACTOR);

    proceduresAndFunctionDeclarationEClass = createEClass(PROCEDURES_AND_FUNCTION_DECLARATION);
    createEReference(proceduresAndFunctionDeclarationEClass, PROCEDURES_AND_FUNCTION_DECLARATION__PROCEDURES);
    createEReference(proceduresAndFunctionDeclarationEClass, PROCEDURES_AND_FUNCTION_DECLARATION__FUNCTIONS);

    functionDeclarationWithHeadingEClass = createEClass(FUNCTION_DECLARATION_WITH_HEADING);

    fieldListClassEClass = createEClass(FIELD_LIST_CLASS);
    createEReference(fieldListClassEClass, FIELD_LIST_CLASS__FIXED_PART);
    createEReference(fieldListClassEClass, FIELD_LIST_CLASS__VARIANT_PART);

    variableLClassEClass = createEClass(VARIABLE_LCLASS);
    createEReference(variableLClassEClass, VARIABLE_LCLASS__EXPRESSION_LIST);
    createEReference(variableLClassEClass, VARIABLE_LCLASS__VARIABLE_L);
    createEAttribute(variableLClassEClass, VARIABLE_LCLASS__IDENTIFIER);

    constFromIdEClass = createEClass(CONST_FROM_ID);
    createEAttribute(constFromIdEClass, CONST_FROM_ID__SIGN);
    createEAttribute(constFromIdEClass, CONST_FROM_ID__IDENTIFIER);

    constFromDigitSequenceEClass = createEClass(CONST_FROM_DIGIT_SEQUENCE);
    createEAttribute(constFromDigitSequenceEClass, CONST_FROM_DIGIT_SEQUENCE__SIGN);
    createEReference(constFromDigitSequenceEClass, CONST_FROM_DIGIT_SEQUENCE__DIGIT_SEQUENCE);

    constFromRealEClass = createEClass(CONST_FROM_REAL);
    createEAttribute(constFromRealEClass, CONST_FROM_REAL__SIGN);
    createEReference(constFromRealEClass, CONST_FROM_REAL__REAL_NUMBER);

    constFromStringEClass = createEClass(CONST_FROM_STRING);
    createEAttribute(constFromStringEClass, CONST_FROM_STRING__STRING);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isInitialized = false;

  /**
   * Complete the initialization of the package and its meta-model.  This
   * method is guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void initializePackageContents()
  {
    if (isInitialized) return;
    isInitialized = true;

    // Initialize package
    setName(eNAME);
    setNsPrefix(eNS_PREFIX);
    setNsURI(eNS_URI);

    // Create type parameters

    // Set bounds for type parameters

    // Add supertypes to classes
    identifier_listEClass.getESuperTypes().add(this.getenumerated_type());
    function_parameter_sectionEClass.getESuperTypes().add(this.getformal_parameter_section());
    procedure_parameter_sectionEClass.getESuperTypes().add(this.getformal_parameter_section());
    variable_parameter_sectionEClass.getESuperTypes().add(this.getformal_parameter_section());
    value_parameter_sectionEClass.getESuperTypes().add(this.getformal_parameter_section());
    conformant_array_schemaEClass.getESuperTypes().add(this.getparameter_type());
    unpacked_conformant_array_schemaEClass.getESuperTypes().add(this.getconformant_array_schema());
    packed_conformant_array_schemaEClass.getESuperTypes().add(this.getconformant_array_schema());
    ordinal_type_identifierEClass.getESuperTypes().add(this.getbound_especification());
    typeEClass.getESuperTypes().add(this.getfile_component_type());
    typeEClass.getESuperTypes().add(this.getbase_type());
    typeEClass.getESuperTypes().add(this.getelement_type());
    pointer_typeEClass.getESuperTypes().add(this.gettype());
    type_identifierEClass.getESuperTypes().add(this.getresult_type());
    type_identifierEClass.getESuperTypes().add(this.getparameter_type());
    type_identifierEClass.getESuperTypes().add(this.getordinal_type_identifier());
    type_identifierEClass.getESuperTypes().add(this.gettype());
    structured_typeEClass.getESuperTypes().add(this.gettype());
    file_typeEClass.getESuperTypes().add(this.getunpacked_structured_type());
    file_component_typeEClass.getESuperTypes().add(this.getfile_type());
    set_typeEClass.getESuperTypes().add(this.getunpacked_structured_type());
    base_typeEClass.getESuperTypes().add(this.getset_type());
    record_typeEClass.getESuperTypes().add(this.getunpacked_structured_type());
    field_listEClass.getESuperTypes().add(this.getrecord_type());
    array_typeEClass.getESuperTypes().add(this.getunpacked_structured_type());
    simple_typeEClass.getESuperTypes().add(this.gettype());
    simple_typeEClass.getESuperTypes().add(this.getindex_type());
    subrange_typeEClass.getESuperTypes().add(this.getsimple_type());
    enumerated_typeEClass.getESuperTypes().add(this.getsimple_type());
    digiT_SEQUENCEEClass.getESuperTypes().add(this.getLABEL());
    digiT_SEQUENCEEClass.getESuperTypes().add(this.getfactor());
    digiT_SEQUENCEEClass.getESuperTypes().add(this.getscale_factor());
    statement_sequenceEClass.getESuperTypes().add(this.getSTATEMENT_PART());
    statement_sequenceEClass.getESuperTypes().add(this.getcompound_statement());
    with_statementEClass.getESuperTypes().add(this.getstructured_statement());
    conditional_statementEClass.getESuperTypes().add(this.getstructured_statement());
    case_statementEClass.getESuperTypes().add(this.getconditional_statement());
    if_statementEClass.getESuperTypes().add(this.getconditional_statement());
    repetitive_statementEClass.getESuperTypes().add(this.getstructured_statement());
    for_statementEClass.getESuperTypes().add(this.getrepetitive_statement());
    repeat_statementEClass.getESuperTypes().add(this.getrepetitive_statement());
    while_statementEClass.getESuperTypes().add(this.getrepetitive_statement());
    compound_statementEClass.getESuperTypes().add(this.getstructured_statement());
    goto_statementEClass.getESuperTypes().add(this.getsimple_statement());
    procedure_statementEClass.getESuperTypes().add(this.getsimple_statement());
    assignment_statementEClass.getESuperTypes().add(this.getsimple_statement());
    expressionEClass.getESuperTypes().add(this.getinitial_expression());
    expressionEClass.getESuperTypes().add(this.getfinal_expression());
    expressionEClass.getESuperTypes().add(this.getfactor());
    expressionEClass.getESuperTypes().add(this.getactual_value());
    function_designatorEClass.getESuperTypes().add(this.getfactor());
    actual_valueEClass.getESuperTypes().add(this.getactual_parameter());
    setEClass.getESuperTypes().add(this.getfactor());
    element_listEClass.getESuperTypes().add(this.getset());
    variableEClass.getESuperTypes().add(this.getrecord_variable());
    variableEClass.getESuperTypes().add(this.getfactor());
    reaL_NUMBEREClass.getESuperTypes().add(this.getfactor());
    proceduresAndFunctionDeclarationEClass.getESuperTypes().add(this.getprocedure_and_function_declaration_part());
    functionDeclarationWithHeadingEClass.getESuperTypes().add(this.getfunction_declaration());
    fieldListClassEClass.getESuperTypes().add(this.getfield_list());
    variableLClassEClass.getESuperTypes().add(this.getvariable_l());
    constFromIdEClass.getESuperTypes().add(this.getconstant());
    constFromDigitSequenceEClass.getESuperTypes().add(this.getconstant());
    constFromRealEClass.getESuperTypes().add(this.getconstant());
    constFromStringEClass.getESuperTypes().add(this.getconstant());

    // Initialize classes and features; add operations and parameters
    initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getModel_Programs(), this.getprogram(), null, "programs", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(programEClass, program.class, "program", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getprogram_Heading(), this.getprogram_heading(), null, "heading", null, 0, 1, program.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getprogram_Block(), this.getblock(), null, "block", null, 0, 1, program.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(program_headingEClass, program_heading.class, "program_heading", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getprogram_heading_ProgramName(), ecorePackage.getEString(), "programName", null, 0, 1, program_heading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getprogram_heading_Params(), this.getidentifier_list(), null, "params", null, 0, 1, program_heading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(blockEClass, block.class, "block", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getblock_DeclarationPart(), this.getdeclaration_part(), null, "declarationPart", null, 0, 1, block.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getblock_StatementPart(), this.getSTATEMENT_PART(), null, "statementPart", null, 0, 1, block.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(identifier_listEClass, identifier_list.class, "identifier_list", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getidentifier_list_Identifiers(), ecorePackage.getEString(), "identifiers", null, 0, -1, identifier_list.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(declaration_partEClass, declaration_part.class, "declaration_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getdeclaration_part_LabelDeclarationPart(), this.getlabel_declaration_part(), null, "labelDeclarationPart", null, 0, 1, declaration_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getdeclaration_part_ConstantDeclarationPart(), this.getconstant_definition_part(), null, "constantDeclarationPart", null, 0, 1, declaration_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getdeclaration_part_TypeDeclarationPart(), this.gettype_definition_part(), null, "typeDeclarationPart", null, 0, 1, declaration_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getdeclaration_part_VariableDeclarationPart(), this.getvariable_declaration_part(), null, "variableDeclarationPart", null, 0, 1, declaration_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getdeclaration_part_ProcedureAndFunctionDeclarationPart(), this.getprocedure_and_function_declaration_part(), null, "procedureAndFunctionDeclarationPart", null, 0, 1, declaration_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(procedure_and_function_declaration_partEClass, procedure_and_function_declaration_part.class, "procedure_and_function_declaration_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(function_declarationEClass, function_declaration.class, "function_declaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getfunction_declaration_Heading(), ecorePackage.getEObject(), null, "heading", null, 0, 1, function_declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getfunction_declaration_Body(), this.getfunction_body(), null, "body", null, 0, 1, function_declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(function_identificationEClass, function_identification.class, "function_identification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getfunction_identification_FunctionName(), this.getfunction_identifier(), null, "functionName", null, 0, 1, function_identification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(function_identifierEClass, function_identifier.class, "function_identifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getfunction_identifier_Identifier(), ecorePackage.getEString(), "identifier", null, 0, 1, function_identifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(function_bodyEClass, function_body.class, "function_body", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getfunction_body_Block(), this.getblock(), null, "block", null, 0, 1, function_body.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(procedure_declarationEClass, procedure_declaration.class, "procedure_declaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getprocedure_declaration_Heading(), this.getprocedure_heading(), null, "heading", null, 0, 1, procedure_declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getprocedure_declaration_Body(), this.getprocedure_body(), null, "body", null, 0, 1, procedure_declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(procedure_bodyEClass, procedure_body.class, "procedure_body", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getprocedure_body_Block(), this.getblock(), null, "block", null, 0, 1, procedure_body.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(procedure_identificationEClass, procedure_identification.class, "procedure_identification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getprocedure_identification_ProcedureIdentifier(), this.getprocedure_identifier(), null, "procedureIdentifier", null, 0, 1, procedure_identification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(procedure_identifierEClass, procedure_identifier.class, "procedure_identifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getprocedure_identifier_Identifier(), ecorePackage.getEString(), "identifier", null, 0, 1, procedure_identifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(procedure_headingEClass, procedure_heading.class, "procedure_heading", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getprocedure_heading_ProcedureName(), ecorePackage.getEString(), "procedureName", null, 0, 1, procedure_heading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getprocedure_heading_ParameterList(), this.getformal_parameter_list(), null, "parameterList", null, 0, 1, procedure_heading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(formal_parameter_listEClass, formal_parameter_list.class, "formal_parameter_list", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getformal_parameter_list_Parameters(), this.getformal_parameter_section(), null, "parameters", null, 0, -1, formal_parameter_list.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(formal_parameter_sectionEClass, formal_parameter_section.class, "formal_parameter_section", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(function_parameter_sectionEClass, function_parameter_section.class, "function_parameter_section", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getfunction_parameter_section_Heading(), this.getfunction_heading(), null, "heading", null, 0, 1, function_parameter_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(function_headingEClass, function_heading.class, "function_heading", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getfunction_heading_FunctionName(), ecorePackage.getEString(), "functionName", null, 0, 1, function_heading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getfunction_heading_ParameterList(), this.getformal_parameter_list(), null, "parameterList", null, 0, 1, function_heading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getfunction_heading_ResultType(), this.getresult_type(), null, "resultType", null, 0, 1, function_heading.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(result_typeEClass, result_type.class, "result_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(procedure_parameter_sectionEClass, procedure_parameter_section.class, "procedure_parameter_section", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getprocedure_parameter_section_Heading(), this.getprocedure_heading(), null, "heading", null, 0, 1, procedure_parameter_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(variable_parameter_sectionEClass, variable_parameter_section.class, "variable_parameter_section", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getvariable_parameter_section_IdentifierList(), this.getidentifier_list(), null, "identifierList", null, 0, 1, variable_parameter_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getvariable_parameter_section_Type(), this.getparameter_type(), null, "type", null, 0, 1, variable_parameter_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(value_parameter_sectionEClass, value_parameter_section.class, "value_parameter_section", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getvalue_parameter_section_IdentifierList(), this.getidentifier_list(), null, "identifierList", null, 0, 1, value_parameter_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getvalue_parameter_section_Type(), this.getparameter_type(), null, "type", null, 0, 1, value_parameter_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(parameter_typeEClass, parameter_type.class, "parameter_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(conformant_array_schemaEClass, conformant_array_schema.class, "conformant_array_schema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getconformant_array_schema_TypeIdentifier(), this.gettype_identifier(), null, "typeIdentifier", null, 0, 1, conformant_array_schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(unpacked_conformant_array_schemaEClass, unpacked_conformant_array_schema.class, "unpacked_conformant_array_schema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getunpacked_conformant_array_schema_BoundEspecifications(), this.getbound_especification(), null, "boundEspecifications", null, 0, -1, unpacked_conformant_array_schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getunpacked_conformant_array_schema_ConformantArraySchema(), this.getconformant_array_schema(), null, "conformantArraySchema", null, 0, 1, unpacked_conformant_array_schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(packed_conformant_array_schemaEClass, packed_conformant_array_schema.class, "packed_conformant_array_schema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getpacked_conformant_array_schema_BoundEspecification(), this.getbound_especification(), null, "boundEspecification", null, 0, 1, packed_conformant_array_schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(bound_especificationEClass, bound_especification.class, "bound_especification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(ordinal_type_identifierEClass, ordinal_type_identifier.class, "ordinal_type_identifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(variable_declaration_partEClass, variable_declaration_part.class, "variable_declaration_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getvariable_declaration_part_Variables(), this.getvariable_declaration(), null, "variables", null, 0, -1, variable_declaration_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(variable_declarationEClass, variable_declaration.class, "variable_declaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getvariable_declaration_VariableNames(), this.getidentifier_list(), null, "variableNames", null, 0, 1, variable_declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getvariable_declaration_Type(), this.gettype(), null, "type", null, 0, 1, variable_declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(label_declaration_partEClass, label_declaration_part.class, "label_declaration_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getlabel_declaration_part_Labels(), this.getLABEL(), null, "labels", null, 0, -1, label_declaration_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(constant_definition_partEClass, constant_definition_part.class, "constant_definition_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getconstant_definition_part_ConstantDefinitions(), this.getconstant_definition(), null, "constantDefinitions", null, 0, -1, constant_definition_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(constant_definitionEClass, constant_definition.class, "constant_definition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getconstant_definition_ConstantName(), ecorePackage.getEString(), "constantName", null, 0, 1, constant_definition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getconstant_definition_Value(), this.getconstant(), null, "value", null, 0, 1, constant_definition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(type_definition_partEClass, type_definition_part.class, "type_definition_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(gettype_definition_part_TypeDefinitions(), this.gettype_definition(), null, "typeDefinitions", null, 0, -1, type_definition_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(type_definitionEClass, type_definition.class, "type_definition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(gettype_definition_TypeName(), ecorePackage.getEString(), "typeName", null, 0, 1, type_definition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(gettype_definition_Type(), this.gettype(), null, "type", null, 0, 1, type_definition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(typeEClass, type.class, "type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(pointer_typeEClass, pointer_type.class, "pointer_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getpointer_type_PointerTypeName(), this.gettype_identifier(), null, "pointerTypeName", null, 0, 1, pointer_type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(type_identifierEClass, type_identifier.class, "type_identifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(gettype_identifier_TypeIdentifierName(), ecorePackage.getEString(), "typeIdentifierName", null, 0, 1, type_identifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(structured_typeEClass, structured_type.class, "structured_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getstructured_type_UnpackedStructuredType(), this.getunpacked_structured_type(), null, "unpackedStructuredType", null, 0, 1, structured_type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(unpacked_structured_typeEClass, unpacked_structured_type.class, "unpacked_structured_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(file_typeEClass, file_type.class, "file_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(file_component_typeEClass, file_component_type.class, "file_component_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(set_typeEClass, set_type.class, "set_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(base_typeEClass, base_type.class, "base_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(record_typeEClass, record_type.class, "record_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(field_listEClass, field_list.class, "field_list", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(fixed_partEClass, fixed_part.class, "fixed_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getfixed_part_RecordSections(), this.getrecord_section(), null, "recordSections", null, 0, -1, fixed_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(record_sectionEClass, record_section.class, "record_section", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getrecord_section_Identifierlist(), this.getidentifier_list(), null, "identifierlist", null, 0, 1, record_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getrecord_section_Type(), this.gettype(), null, "type", null, 0, 1, record_section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(variant_partEClass, variant_part.class, "variant_part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getvariant_part_Variants(), this.getvariant(), null, "variants", null, 0, -1, variant_part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(variantEClass, variant.class, "variant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getvariant_CaseLabelList(), this.getcase_label_list(), null, "caseLabelList", null, 0, 1, variant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getvariant_FieldList(), this.getfield_list(), null, "fieldList", null, 0, 1, variant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(case_label_listEClass, case_label_list.class, "case_label_list", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getcase_label_list_Constants(), this.getconstant(), null, "constants", null, 0, -1, case_label_list.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(array_typeEClass, array_type.class, "array_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getarray_type_IndexTypes(), this.getindex_type(), null, "indexTypes", null, 0, -1, array_type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getarray_type_ElementType(), this.getelement_type(), null, "elementType", null, 0, 1, array_type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(index_typeEClass, index_type.class, "index_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(element_typeEClass, element_type.class, "element_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(simple_typeEClass, simple_type.class, "simple_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(subrange_typeEClass, subrange_type.class, "subrange_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getsubrange_type_LowerBound(), this.getlower_bound(), null, "lowerBound", null, 0, 1, subrange_type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getsubrange_type_UpperBound(), this.getupper_bound(), null, "upperBound", null, 0, 1, subrange_type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(lower_boundEClass, lower_bound.class, "lower_bound", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getlower_bound_Value(), this.getconstant(), null, "value", null, 0, 1, lower_bound.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(upper_boundEClass, upper_bound.class, "upper_bound", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getupper_bound_Value(), this.getconstant(), null, "value", null, 0, 1, upper_bound.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(enumerated_typeEClass, enumerated_type.class, "enumerated_type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(labelEClass, br.edu.ufcg.dsc.compiladores.pascal.LABEL.class, "LABEL", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(digiT_SEQUENCEEClass, br.edu.ufcg.dsc.compiladores.pascal.DIGIT_SEQUENCE.class, "DIGIT_SEQUENCE", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getDIGIT_SEQUENCE_Sign(), ecorePackage.getEString(), "sign", null, 0, 1, br.edu.ufcg.dsc.compiladores.pascal.DIGIT_SEQUENCE.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getDIGIT_SEQUENCE_Value(), ecorePackage.getEString(), "value", null, 0, 1, br.edu.ufcg.dsc.compiladores.pascal.DIGIT_SEQUENCE.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(statemenT_PARTEClass, br.edu.ufcg.dsc.compiladores.pascal.STATEMENT_PART.class, "STATEMENT_PART", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(statement_sequenceEClass, statement_sequence.class, "statement_sequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getstatement_sequence_Statements(), this.getstatement(), null, "statements", null, 0, -1, statement_sequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(statementEClass, statement.class, "statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getstatement_Label(), this.getLABEL(), null, "label", null, 0, 1, statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getstatement_SimpleStatement(), this.getsimple_statement(), null, "simpleStatement", null, 0, 1, statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getstatement_StructuredStatement(), this.getstructured_statement(), null, "structuredStatement", null, 0, 1, statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(structured_statementEClass, structured_statement.class, "structured_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(with_statementEClass, with_statement.class, "with_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getwith_statement_RecordVariables(), this.getrecord_variable(), null, "recordVariables", null, 0, -1, with_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getwith_statement_Statement(), this.getstatement(), null, "statement", null, 0, 1, with_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(record_variableEClass, record_variable.class, "record_variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(conditional_statementEClass, conditional_statement.class, "conditional_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getconditional_statement_Expression(), this.getexpression(), null, "expression", null, 0, 1, conditional_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(case_statementEClass, case_statement.class, "case_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getcase_statement_CaseLimbs(), this.getcase_limb(), null, "caseLimbs", null, 0, -1, case_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(case_limbEClass, case_limb.class, "case_limb", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getcase_limb_CaseLabelList(), this.getcase_label_list(), null, "caseLabelList", null, 0, 1, case_limb.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getcase_limb_Statement(), this.getstatement(), null, "statement", null, 0, 1, case_limb.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(if_statementEClass, if_statement.class, "if_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getif_statement_Statement(), this.getstatement(), null, "statement", null, 0, 1, if_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getif_statement_StatementElse(), this.getstatement(), null, "statementElse", null, 0, 1, if_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(repetitive_statementEClass, repetitive_statement.class, "repetitive_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(for_statementEClass, for_statement.class, "for_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getfor_statement_VariableIdentifier(), this.getvariable_identifier(), null, "variableIdentifier", null, 0, 1, for_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getfor_statement_InitialExpression(), this.getinitial_expression(), null, "initialExpression", null, 0, 1, for_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getfor_statement_FinalExpression(), this.getfinal_expression(), null, "finalExpression", null, 0, 1, for_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getfor_statement_Statement(), this.getstatement(), null, "statement", null, 0, 1, for_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(initial_expressionEClass, initial_expression.class, "initial_expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(final_expressionEClass, final_expression.class, "final_expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(variable_identifierEClass, variable_identifier.class, "variable_identifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getvariable_identifier_Identifier(), ecorePackage.getEString(), "identifier", null, 0, 1, variable_identifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(repeat_statementEClass, repeat_statement.class, "repeat_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getrepeat_statement_StatementSequence(), this.getstatement_sequence(), null, "StatementSequence", null, 0, 1, repeat_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getrepeat_statement_Expression(), this.getexpression(), null, "expression", null, 0, 1, repeat_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(while_statementEClass, while_statement.class, "while_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getwhile_statement_Expression(), this.getexpression(), null, "expression", null, 0, 1, while_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getwhile_statement_Statement(), this.getstatement(), null, "statement", null, 0, 1, while_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(compound_statementEClass, compound_statement.class, "compound_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(simple_statementEClass, simple_statement.class, "simple_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(goto_statementEClass, goto_statement.class, "goto_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getgoto_statement_Label(), this.getLABEL(), null, "label", null, 0, 1, goto_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(procedure_statementEClass, procedure_statement.class, "procedure_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getprocedure_statement_ProcedureIdentifier(), this.getprocedure_identifier(), null, "procedureIdentifier", null, 0, 1, procedure_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getprocedure_statement_ActualParameterList(), this.getactual_parameter_list(), null, "actualParameterList", null, 0, 1, procedure_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(assignment_statementEClass, assignment_statement.class, "assignment_statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getassignment_statement_Variable(), this.getvariable(), null, "variable", null, 0, 1, assignment_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getassignment_statement_Expression(), this.getexpression(), null, "expression", null, 0, 1, assignment_statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(expressionEClass, expression.class, "expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getexpression_LeftExpression(), this.getsimple_expression(), null, "leftExpression", null, 0, 1, expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getexpression_RelOp(), ecorePackage.getEString(), "relOp", null, 0, 1, expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getexpression_RightExpression(), this.getsimple_expression(), null, "rightExpression", null, 0, 1, expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(simple_expressionEClass, simple_expression.class, "simple_expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getsimple_expression_Sign(), ecorePackage.getEString(), "sign", null, 0, 1, simple_expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getsimple_expression_LeftTerm(), this.getterm(), null, "leftTerm", null, 0, 1, simple_expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getsimple_expression_AddOps(), ecorePackage.getEString(), "addOps", null, 0, -1, simple_expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getsimple_expression_RightTerms(), this.getterm(), null, "rightTerms", null, 0, -1, simple_expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(termEClass, term.class, "term", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getterm_LeftFactor(), this.getfactor(), null, "leftFactor", null, 0, 1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getterm_Multops(), ecorePackage.getEString(), "multops", null, 0, -1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getterm_RightFactors(), this.getfactor(), null, "rightFactors", null, 0, -1, term.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(factorEClass, factor.class, "factor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(function_designatorEClass, function_designator.class, "function_designator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getfunction_designator_FunctionIdentifier(), this.getfunction_identifier(), null, "functionIdentifier", null, 0, 1, function_designator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getfunction_designator_ActualParameterList(), this.getactual_parameter_list(), null, "actualParameterList", null, 0, 1, function_designator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(actual_parameter_listEClass, actual_parameter_list.class, "actual_parameter_list", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getactual_parameter_list_ActualParameters(), this.getactual_parameter(), null, "actualParameters", null, 0, -1, actual_parameter_list.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(actual_parameterEClass, actual_parameter.class, "actual_parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(actual_valueEClass, actual_value.class, "actual_value", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(setEClass, set.class, "set", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(element_listEClass, element_list.class, "element_list", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getelement_list_Expressions(), this.getexpression(), null, "expressions", null, 0, -1, element_list.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(variableEClass, variable.class, "variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getvariable_Name(), ecorePackage.getEString(), "name", null, 0, 1, variable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getvariable_VariableL(), this.getvariable_l(), null, "variableL", null, 0, 1, variable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(variable_lEClass, variable_l.class, "variable_l", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(expression_listEClass, expression_list.class, "expression_list", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getexpression_list_Expressions(), this.getexpression(), null, "expressions", null, 0, -1, expression_list.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(constantEClass, constant.class, "constant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(reaL_NUMBEREClass, br.edu.ufcg.dsc.compiladores.pascal.REAL_NUMBER.class, "REAL_NUMBER", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getREAL_NUMBER_DigitSequence(), this.getDIGIT_SEQUENCE(), null, "digitSequence", null, 0, 1, br.edu.ufcg.dsc.compiladores.pascal.REAL_NUMBER.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getREAL_NUMBER_UnsignedDigitSequence(), ecorePackage.getEString(), "unsignedDigitSequence", null, 0, 1, br.edu.ufcg.dsc.compiladores.pascal.REAL_NUMBER.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getREAL_NUMBER_ScaleFactor(), this.getscale_factor(), null, "scaleFactor", null, 0, 1, br.edu.ufcg.dsc.compiladores.pascal.REAL_NUMBER.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(scale_factorEClass, scale_factor.class, "scale_factor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(proceduresAndFunctionDeclarationEClass, ProceduresAndFunctionDeclaration.class, "ProceduresAndFunctionDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getProceduresAndFunctionDeclaration_Procedures(), this.getprocedure_declaration(), null, "procedures", null, 0, -1, ProceduresAndFunctionDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getProceduresAndFunctionDeclaration_Functions(), this.getfunction_declaration(), null, "functions", null, 0, -1, ProceduresAndFunctionDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(functionDeclarationWithHeadingEClass, FunctionDeclarationWithHeading.class, "FunctionDeclarationWithHeading", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(fieldListClassEClass, FieldListClass.class, "FieldListClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getFieldListClass_FixedPart(), this.getfixed_part(), null, "fixedPart", null, 0, 1, FieldListClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getFieldListClass_VariantPart(), this.getvariant_part(), null, "variantPart", null, 0, 1, FieldListClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(variableLClassEClass, VariableLClass.class, "VariableLClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getVariableLClass_ExpressionList(), this.getexpression_list(), null, "expressionList", null, 0, 1, VariableLClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getVariableLClass_VariableL(), this.getvariable_l(), null, "variableL", null, 0, 1, VariableLClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getVariableLClass_Identifier(), ecorePackage.getEString(), "identifier", null, 0, 1, VariableLClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(constFromIdEClass, ConstFromId.class, "ConstFromId", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getConstFromId_Sign(), ecorePackage.getEString(), "sign", null, 0, 1, ConstFromId.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getConstFromId_Identifier(), ecorePackage.getEString(), "identifier", null, 0, 1, ConstFromId.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(constFromDigitSequenceEClass, ConstFromDigitSequence.class, "ConstFromDigitSequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getConstFromDigitSequence_Sign(), ecorePackage.getEString(), "sign", null, 0, 1, ConstFromDigitSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getConstFromDigitSequence_DigitSequence(), this.getDIGIT_SEQUENCE(), null, "digitSequence", null, 0, 1, ConstFromDigitSequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(constFromRealEClass, ConstFromReal.class, "ConstFromReal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getConstFromReal_Sign(), ecorePackage.getEString(), "sign", null, 0, 1, ConstFromReal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getConstFromReal_RealNumber(), this.getREAL_NUMBER(), null, "realNumber", null, 0, 1, ConstFromReal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(constFromStringEClass, ConstFromString.class, "ConstFromString", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getConstFromString_String(), ecorePackage.getEString(), "string", null, 0, 1, ConstFromString.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    // Create resource
    createResource(eNS_URI);
  }

} //PascalPackageImpl
